using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Resources;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace KPIS.GERP.Models.HRM
{
	[Table("HrmScholarshipRequest")]
    public class ScholarshipRequest
    {
		[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
		[DataMember, Display(Name = "TranId", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public int TranId { get; set; }

		[DataMember, Display(Name = "TranDate", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public System.DateTime TranDate { get; set; }

		[ForeignKey("Emp")]
		[DataMember, Display(Name = "EmpId", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public int EmpId { get; set; }

		[ForeignKey("Scholar")]
		[DataMember, Display(Name = "ScholarId", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public int ScholarId { get; set; }

		[ForeignKey("EduIns")]
		[DataMember, Display(Name = "EduInsId", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<int> EduInsId { get; set; }

		[DataMember, Display(Name = "DateStart", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<System.DateTime> DateStart { get; set; }

		[DataMember, Display(Name = "DateEnd", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<System.DateTime> DateEnd { get; set; }

		[DataMember, Display(Name = "Granted", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public decimal Granted { get; set; }

		[ForeignKey("EduMajor")]
		[DataMember, Display(Name = "EduMajorId", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<int> EduMajorId { get; set; }

		[DataMember, Display(Name = "EduResultPassed", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<decimal> EduResultPassed { get; set; }

		[DataMember, Display(Name = "EduResultGpa", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<decimal> EduResultGpa { get; set; }

		[DataMember, Display(Name = "GetSalary", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public decimal GetSalary { get; set; }

		[DataMember, Display(Name = "ApDescr", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string ApDescr { get; set; }

		[ForeignKey("ApFh")]
		[DataMember, Display(Name = "ApFhId", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public int ApFhId { get; set; }

		[ForeignKey("ApCitizen")]
		[DataMember, Display(Name = "ApCitizenId", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public int ApCitizenId { get; set; }

		[DataMember, Display(Name = "ApCareer", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string ApCareer { get; set; }

		[DataMember, Display(Name = "ApCareerPosition", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string ApCareerPosition { get; set; }

		[DataMember, Display(Name = "ApContactAddress", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string ApContactAddress { get; set; }

		[ForeignKey("ApContactDistrict")]
		[DataMember, Display(Name = "ApContactDistrictId", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public int ApContactDistrictId { get; set; }

		[DataMember, Display(Name = "ApContactPostalCode", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string ApContactPostalCode { get; set; }

		[DataMember, Display(Name = "ApContactTel", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string ApContactTel { get; set; }

		[DataMember, Display(Name = "ApDateSigned", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<System.DateTime> ApDateSigned { get; set; }

		[DataMember, Display(Name = "ApDateAssured", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<System.DateTime> ApDateAssured { get; set; }

		[DataMember, Display(Name = "AssureRefNo", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string AssureRefNo { get; set; }

		[DataMember, Display(Name = "EpcCompareResultNo", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<decimal> EpcCompareResultNo { get; set; }

		[DataMember, Display(Name = "AmountRepay", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<decimal> AmountRepay { get; set; }

		[DataMember, Display(Name = "AmountRepayReal", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<decimal> AmountRepayReal { get; set; }

		[DataMember, Display(Name = "RepayMoney", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<decimal> RepayMoney { get; set; }

		[DataMember, Display(Name = "ContractNo", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string ContractNo { get; set; }

		[DataMember, Display(Name = "Remarks", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string Remarks { get; set; }

		[DataMember, Display(Name = "GetPositionCost", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<decimal> GetPositionCost { get; set; }

		[ForeignKey("EduQual")]
		[DataMember, Display(Name = "EduQualId", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public int EduQualId { get; set; }

		[DataMember, Display(Name = "TeacherName", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string TeacherName { get; set; }

		[DataMember, Display(Name = "ResponseDate", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<System.DateTime> ResponseDate { get; set; }

		[DataMember, Display(Name = "ResponseNo", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string ResponseNo { get; set; }

		[DataMember, Display(Name = "TeacherTel", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string TeacherTel { get; set; }

		[DataMember, Display(Name = "TeacherFax", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string TeacherFax { get; set; }

		[DataMember, Display(Name = "DurationYear", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<decimal> DurationYear { get; set; }

		[DataMember, Display(Name = "DurationMonth", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<decimal> DurationMonth { get; set; }

		[DataMember, Display(Name = "EntranceDescr", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string EntranceDescr { get; set; }

		[DataMember, Display(Name = "AmountRequest", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<decimal> AmountRequest { get; set; }

		[DataMember, Display(Name = "AmountApprove", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<decimal> AmountApprove { get; set; }

		[ForeignKey("ResponseType")]
		[DataMember, Display(Name = "ResponseTypeId", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<int> ResponseTypeId { get; set; }

		[DataMember, Display(Name = "EduResultRemarks", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string EduResultRemarks { get; set; }

		[DataMember, Display(Name = "DocNo", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string DocNo { get; set; }

		[ForeignKey("ScholarGroup")]
		[DataMember, Display(Name = "ScholarGroupId", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<int> ScholarGroupId { get; set; }

		[DataMember, Display(Name = "StatusCancel", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string StatusCancel { get; set; }

		[DataMember, Display(Name = "StatusCancelRemarks", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string StatusCancelRemarks { get; set; }

		[DataMember, Display(Name = "StatusReturn", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string StatusReturn { get; set; }

		[DataMember, Display(Name = "StatusReturnRemarks", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string StatusReturnRemarks { get; set; }

		[DataMember, Display(Name = "StatusTransfer", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string StatusTransfer { get; set; }

		[DataMember, Display(Name = "StatusTransferRemarks", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string StatusTransferRemarks { get; set; }

		[DataMember, Display(Name = "StatusRepay", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string StatusRepay { get; set; }

		[DataMember, Display(Name = "StatusRepayRemarks", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string StatusRepayRemarks { get; set; }

		[DataMember, Display(Name = "StatusComplete", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string StatusComplete { get; set; }

		[DataMember, Display(Name = "StatusCompleteRemarks", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string StatusCompleteRemarks { get; set; }

		[DataMember, Display(Name = "EduProvDescr", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string EduProvDescr { get; set; }

		[DataMember, Display(Name = "ProjectDescr", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string ProjectDescr { get; set; }

		[DataMember, Display(Name = "FacultyDescr", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string FacultyDescr { get; set; }

		[DataMember, Display(Name = "DepartmentDescr", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string DepartmentDescr { get; set; }

		[DataMember, Display(Name = "EmpText", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string EmpText { get; set; }

		[DataMember, Display(Name = "RecordStatus", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public string RecordStatus { get; set; }

		[DataMember, Display(Name = "CreatedBy", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<int> CreatedBy { get; set; }

		[DataMember, Display(Name = "CreatedWhen", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<System.DateTime> CreatedWhen { get; set; }

		[DataMember, Display(Name = "UpdatedBy", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<int> UpdatedBy { get; set; }

		[DataMember, Display(Name = "UpdatedWhen", ResourceType = typeof(Resources.ScholarshipsRequestsResource))]
        public Nullable<System.DateTime> UpdatedWhen { get; set; }

		public virtual HRM.Employee Emp { get; set; }

		public virtual HRM.Scholarship Scholar { get; set; }

		public virtual HRM.PsEmpEducation EduIns { get; set; }

		public virtual HRM.MasEduMajor EduMajor { get; set; }

		public virtual HRM.Appraisal ApFh { get; set; }

		public virtual HRM.ScholarshipRequest ApCitizen { get; set; }

		public virtual HRM.MasDistrict ApContactDistrict { get; set; }

		public virtual HRM.MasEduQualification EduQual { get; set; }

		public virtual HRM.EsResponse ResponseType { get; set; }

		public virtual HRM.ScholarshipGroup ScholarGroup { get; set; }

    }
}